package 责任链模式.demo2;

public abstract class Dog {

    /**
     * 责任链等级
     */
    protected int level;

    /**
     * 责任链中的下一个处理元素
     */
    protected Dog nextDog;

    public void process(int level) {
        if (level == this.level) {
            // 如果输入的级别大于对象本身的级别，输出数据
            print();
            return;
        }
        if (this.nextDog != null) {
            // 如果存在下一个元素，就继续往下执行
            nextDog.process(level);
        }
    }

    public abstract void print();
}
